package com.york.tinyrpc.protoss.enums;

import lombok.Getter;

/**
 * 协议的消息类型枚举
 * 踩坑记录，根据字节数的限制修改常量值
 */
@Getter
public enum TinyRpcProtocolMessageTypeEnum {

    /**
     * 请求
     */
    REQUEST(20),

    /**
     * 响应
     */
    RESPONSE(30),

    /**
     * 其他
     */
    OTHERS(40),

    /**
     * 心跳检测
     */
    HEART_BEAT(50);


    /**
     * 类型值
     */
    private final int type;

    TinyRpcProtocolMessageTypeEnum(int type) {
        this.type = type;
    }

    /**
     * 根据类型值获取枚举
     *
     * @param type
     * @return
     */
    public static TinyRpcProtocolMessageTypeEnum getEnumByType(int type) {
        for (TinyRpcProtocolMessageTypeEnum anEnum : TinyRpcProtocolMessageTypeEnum.values()) {
            if (anEnum.type == type) {
                return anEnum;
            }
        }
        return null;
    }

}
